草庐IT

AngularJS 指令

全部标签

javascript - Angular 自定义指令更改属性值

努力寻找监视属性更改的最佳方法,理想情况下,它会根据按键事件进行更新,并绑定(bind)到父Controller中的范围我希望指令的每个“实例”都有自己的“hasFocus”属性,可以通过更新属性值来更改例如模板:{{$index+1}}因此在任何时候只有1个指令的值等于“true”。我有一个自定义指令.directive('menu',function(){restrict:'E',templateUrl:'partials/menu-left.html',replace:true,scope:{hasFocus:'@'},link:function($scope,element,a

javascript - 如何以不同的顺序刷新 AngularJS $httpBackend 响应

我有一个AngularJS服务,它执行$httpGET请求并在本地缓存响应。它旨在处理同时发生的多个调用,以便仅缓存来自最终调用的数据。具体来说,如果发生以下情况:请求开始请求B开始请求B已完成请求完成结果是请求B的响应被缓存了,因为它是最后发起的。但是我在Jasmine中对此进行单元测试时遇到了问题。我可以设置两个$httpBackend.expectGET()期望,但我只能按照请求的顺序刷新它们。本质上我需要能够做这样的事情:$httpBackend.expectGET('/one').respond(200,data1);$httpBackend.expectGET('/two'

javascript - 在不使用 "angular.element.scope"的情况下从 AngularJs 外部更新范围

我希望能够从Angular外部的函数更新Angular中的范围。例如,如果我有一个返回成功回调的jQuery插件,我希望能够从该成功回调更新范围。我见过的每个解决方案都涉及调用angular.element(selector).scope,然后在返回的范围上调用$apply。但是,我也看到很多评论表明这在调试信息关闭时不起作用,因此不推荐这样做,但我还没有看到任何替代解决方案。有谁知道在不使用angular.element(selector).scope的情况下从Angular外部更新范围的方法吗?这是帖子中接受的解决方案:“如果您想从AngularJs的控制之外对范围值进行任何更改,

javascript - AngularJS : Should service's boolean method return promise that resolves to true/false, 或者被解决/拒绝?

promise的使用模式仍然让我感到困惑。例如,在Angular应用程序中,我有一个服务usersService,方法是emailExists(email)。显然,它向服务器请求检查给定的电子邮件是否已经存在。让方法emailExists(email)返回在正常操作中解析为true或false的promise对我来说感觉很自然.如果只是我们有一些意外的错误(比如,服务器返回500:内部服务器错误,那么promise应该被拒绝,但在正常操作中,它被解析为相应的bool值。然而,当我开始实现我的异步验证器指令(通过$asyncValidators)时,我看到它想要解决/拒绝promise。

javascript - 使用 AngularJS 自定义排序功能对电子邮件值进行排序时出现问题

我有一个显示用户电子邮件的列,我为其添加了排序功能。但是结果数组没有正确排序。Samplecodeishere任何帮助将不胜感激示例代码中,[升序]排序输出为abc+1@abc.comabc@abc.combac@abc.com但预期输出是abc@abc.comabc+1@abc.combac@abc.com 最佳答案 提示是使用自定义排序功能并在@符号处“剪切”电子邮件。否则将比较整个字符串,并且@的值高于+。如果您只想匹配用户名,您应该没问题。否则,在比较Usernames之前,您还需要比较域。这是一个JSfiddle:http

javascript - ngSmoothScroll Angular Directive(指令)不起作用

我正在使用以下指令https://github.com/d-oliveros/ngSmoothScroll使这个项目中的东西平滑地滚动到选定的元素。这是我的代码:......这就是包含脚本的地方(~/angular-smooth-scroll.min.js)在我的app.js文件中我有:angular.module('sccateringApp',['ngAnimate','ngAria','ngCookies','ngMessages','ngResource','ngRoute','ngSanitize','ngTouch','ui.materialize','smoothScro

javascript - AngularJS 1.4.8 - 选择中的 ngOptions - 当我在 ngOptions 中的选项之前以编程方式设置模型时无限 $digest() 循环

我在从1.2.14迁移到1.4.8时遇到了这个问题。这在1.2.14中工作正常,但我在1.4.8中得到无限的$digest()循环。这是一个Fiddle证明问题。Fiddle比这篇文章更容易看,但它让我包含代码我有一个select看起来像这样的元素:我的选项是对象,像这样:$scope.options=[{id:1,label:'one'},{id:2,label:'two'}];我想为ngOptions指令提供的选项数组取决于条件;有时我只想给它$scope.options,但有时我想包括另一个选项。$scope.getOptions=function(){if($scope.sho

javascript - 无法对使用 $window 的 Angular 指令进行单元测试

我有一堆针对各种Angular(1.4.7)指令的工作单元测试,我正在使用Karma、Jasmine和Sinon进行测试。我正在尝试为新指令添加单元测试,这是我目前唯一使用$window的指令,但我在控制台输出中看到一个神秘错误:TypeError:'undefined'isnotanobject(evaluating'this.proxy.toString')此错误来自第2372行的sinon.js。我在指令单元测试中做所有“正常”的事情,例如创建一个将指令作为属性的假元素:testElement=document.createElement('div');testElement.s

javascript - 使用整数为美分的angularjs货币过滤器

正如您可以在互联网上阅读的那样usingfloatstorepresentcurrencyisaverybadidea.推荐的最佳做法是改用代表美分的整数。这样您就不会遇到任何精度问题,尤其是在您进行一些计算时。由于我天真且过于乐观,我选择了-尽管有所有警告-float来表示我应用程序中的货币。一开始进展顺利。现在我遇到了各种问题(尤其是比较问题),想从float切换到整数。不幸的是,angular不支持美分整数作为货币过滤器的输入(至少据我所知)。我有点惊讶,到目前为止似乎还没有人提出这个问题(github上没有相应的问题,SO上也没有,等等)。有什么最佳实践吗?您能想到像这样的简单

javascript - 指令的模板没有获得编译设置的值

请看这个Plunker我有一个使用自定义AngularDirective(指令)的htmlHelloPlunker!我的指令是这样的:myApp.directive('sample',function(){varvalue="";return{replace:true,restrict:'E',scope:false,template:'ThisisasampleParagraph'+value+'',compile:function(tElement,tAttributes){return{pre:functionpreLink(scope,element,attributes){c